#pragma once

class Intersectable;

class FirstIntersectionResult
{
public:
	double Distance, ExtraInfoDouble;
	std::string ExtraInfo;
	Intersectable* Obj;
	bool DoesIntersect();

	void Set(double distance, /*const*/ Intersectable* obj);
	void Set(Intersectable* obj);
	FirstIntersectionResult(double distance, Intersectable* obj);
	FirstIntersectionResult(Intersectable* obj); //at infinity...
	FirstIntersectionResult();
};

typedef boost::shared_ptr<FirstIntersectionResult> FirstIntersectionResult_ptr;
